When developing a complex application or complex system of applications, an error handling system is needed that handles normal error conditions in the application or system and unexpected exceptions caused by the inevitable software errors made by the developer of the application or system. Complex applications or systems often create difficult error handling problems for the user of the system. The error handling must have a uniform look and equal access to the help system supplied with the application or system. Ideally, exceptions are reported through the same error handling as expected error conditions are reported. In a complex application or system, errors and exceptions may occur concurrently in different processes and if improperly handled, may cause a bewildering series of error messages to occur and, sometimes, create more exceptions in an attempt to concurrently access the error handling or help system.
One important aspect of error processing is to attempt to produce the earlier error message first within the system. That is, the first process to detect an error more often finds the actual, or root, cause of the error, and it is important that the error message displayed by this first process be the first or top most error message on the display screen connected to the computer system that displays the error. This may not occur if multiple processes detect the error, since some of those processes may have a higher priority than the process that first detected the error, and the process with the higher priority will display its message before the other processes. In this situation, the message from the process that first detects the error may be buried within the user screen and not easily visible.
Another problem that can occur is that one or more processes may consume all the memory available within the computer system. When this happens, there is insufficient user memory for the error process to display an error message. Thus, the user is uninformed and the system simply "crashes", without informing the user as to the cause of the "crash".
Another problem that can occur between applications that are distributed over more than one computer, is that the application may have a problem on a remote computer and the user at the local computer, who is actually running the process, will be unaware that an error has occurred or unaware of the cause of the error. Thus, it is important when an error occurs in a distributed system, that error messages be displayed on all computers that are operating the distributed system.
There is need in the art then for an improved system for displaying error messages in an application or system of applications. There is a further need for such a system that attempts to display the first occurring error on the most prominent portion of the computer screen attached to the process that is running. Another need is for such a system that gives equal access to a help file for all errors. Still another need is for such a system that can display out of memory error messages, even though the system has no memory available for use in constructing the error message. A still further need is for such a system that can remotely display errors in an application or system application. The present invention solves these and other needs in the art.